package com.dingding.common.core.sms.impl;

import java.util.ArrayList;
import java.util.UUID;

import org.apache.log4j.Logger;

import com.dingding.common.core.sms.ISendMessage;
import com.esms.MessageData;
import com.esms.PostMsg;
import com.esms.common.entity.Account;
import com.esms.common.entity.GsmsResponse;
import com.esms.common.entity.MTPack;
import com.esms.common.entity.MTPack.MsgType;
import com.esms.common.entity.MTPack.SendType;

/** 
 * 
 * @ClassName: ISendMessage 
 * @Description: 发送手机验证码
 * @author CHEHAUNBO 
 * @date 2016年2月24日 下午4:46:02  
 * 
*/
public class XuanWuSendMessageImpl implements ISendMessage {

	private Logger log = Logger.getLogger(this.getClass());

	/**
	 * 
	 * 
	 * @Title: sendMessage 
	 * @Description: 根据手机号发送短信到用户手机上
	 * @param tellphone 手机号
	 * @return boolean true 成功 false 失败
	 * @author CHEHAUNBO
	 * 
	 * 
	 */
	public boolean sendMessage(String tellphone, String msg) {

		// String msg = MessageModel.registered(validateNum);
		// return SendMessagesUtil.sendMessage(tellphone, msg);

		Account account = new Account("bjpddd@bjpddd", "]wO.Zb29");
		PostMsg pm = new PostMsg();
		// 设置网关的IP和port,用于发送信息
		pm.getCmHost().setHost("211.147.239.62", 9080);
		// 设置网关的IP和port,用于获取账户信息、上行、状态报告等等
		pm.getWsHost().setHost("211.147.239.62", 9070);
		// 拼装发送的信息包
		MTPack pack = new MTPack();
		pack.setBatchID(UUID.randomUUID()); // 信息批次唯一序列号，不是必须
		pack.setBatchName("单条短信测试批次");// 批次名称，
		pack.setMsgType(MsgType.SMS);// 发送类型：短信
		pack.setBizType(1); // 信息业务类型，不是必须
		pack.setDistinctFlag(false);// 是否过滤重复号码
		pack.setSendType(SendType.MASS);// 发送类型

		ArrayList<MessageData> msgs = new ArrayList<MessageData>();
		// 单发，一号码一内容
		msgs.add(new MessageData(tellphone, msg));
		// 添加要发送的手机号，及内容
		pack.setMsgs(msgs);

		GsmsResponse resp = null;
		try {

			resp = pm.post(account, pack);
			// 获取发送短信返回的消息内容
			String status = resp.getMessage();
			if (!"成功".equals(status)) {
				log.error("发送短信失败！响应信息：" + status);
				return false;
			} else {
				return true;
			}

		} catch (Exception e) {
			log.error("发送短信出现异常！" + XuanWuSendMessageImpl.class + "方法：sendMessage()", e);
			return false;
		}

	}

}
